home *** CD-ROM | disk | FTP | other *** search
/ Scene Storm / Scene Storm - Volume 1.iso / coding / asm / music / replayers / 8chn-replay.s next >
Encoding:
Text File  |  1980-01-04  |  10.6 KB  |  747 lines

  1.  
  2.  
  3.         section    chippy,code_c
  4.  
  5.         lea    mt8_data,a0
  6.         bsr    mt8_init
  7.  
  8. loop1:        move.l    $4(a6),d0            ;get max raster-time
  9.         lsr.l    #8,d0                ; ( => d1 !)
  10.         and.w    #$1ff,d0
  11.         cmp.w    d0,d1
  12.         bhi.s    lab1
  13.         move.w    d0,d1
  14. lab1:
  15.  
  16.         bsr    mt8_play            ;play music
  17.  
  18.         btst    #6,$bfe001            ;wait for mouse
  19.         bne.s    loop1
  20.  
  21.         bsr    mt8_end
  22. gpc        rts
  23.  
  24. ;================================ macros ================================
  25.  
  26. mt8_add:macro                    ;mix two sample-bytes
  27.     move.b    (a0,d0.w),d4            ;get sample-byte a
  28.     ext.w    d4
  29.     move.b    (a1,d1.w),d5            ;get sample-byte b
  30.     ext.w    d5
  31.     add.w    d5,d4                ; & mix them
  32.     asr.w    #1,d4
  33.     move.b    d4,(a5)+
  34.     swap    d0
  35.     swap    d1
  36.     add.l    d2,d0                ;increase pointer to next
  37.     add.l    d3,d1                ;sample-byte
  38.     swap    d0
  39.     swap    d1
  40.     endm
  41.  
  42. ;============================ initialization ============================
  43.  
  44. mt8_init: movem.l    d0-d7/a0-a6,-(a7)
  45.     lea    mt8_mdl(pc),a1            ;save module-address
  46.     move.l    a0,(a1)
  47.     move.l    a0,a1
  48.     add.w    #$3b8,a1
  49.     moveq    #$7f,d0
  50.     moveq    #0,d1
  51. mt8_lp1:move.l    d1,d2
  52.     subq.w    #1,d0
  53. mt8_lp2:move.b    (a1)+,d1
  54.     cmp.b    d2,d1                ;get highest pattern
  55.     bgt.s    mt8_lp1
  56.     dbf    d0,mt8_lp2
  57.     addq.b    #1,d2
  58.  
  59.     lea    mt8_ins(pc),a1            ;instrument-list => a1
  60.     moveq    #10,d3
  61.     asl.l    d3,d2
  62.     move.l    d2,a2
  63.     add.w    #$43c,a2
  64.     add.l    a0,a2                ;sample-offset => a2
  65.     moveq    #$1e,d0                ;init 31 instruments
  66. mt8_lp3:clr.l    (a2)
  67.     move.l    a2,(a1)+            ;pointer => liste
  68.     moveq    #0,d1
  69.     move.w    42(a0),d1
  70.     add.l    d1,d1
  71.     add.l    d1,a2
  72.     add.w    #$1e,a0
  73.     dbf    d0,mt8_lp3
  74.  
  75.     move.l    mt8_mdl(pc),a0
  76.     add.w    #$3b8,a0
  77.     moveq    #0,d1
  78.     move.b    (a0),d1                ;get first pattern
  79.     moveq    #10,d0
  80.     lsl.l    d0,d1
  81.     add.w    #$42c-$3b8,a0
  82.     add.l    a0,d1
  83.     lea    mt8_evn(pc),a0
  84.     move.l    d1,(a0)+
  85.     add.l    #$400,d1
  86.     move.l    d1,(a0)
  87.  
  88.     bset    #1,$bfe001            ;filter off
  89.  
  90.     lea    mt8_ctr(pc),a0
  91.     move.w    #$0006,(a0)+            ;set speed
  92.     clr.w    (a0)+
  93.     clr.w    (a0)+
  94.     move.w    #$139,(a0)            ;set buffer 2
  95.  
  96.     lea    mt8_dat(pc),a0
  97.     move.w    #$37+$272,d0
  98. mt8_cl1:clr.l    (a0)+                ;clear buffer
  99.     dbf    d0,mt8_cl1
  100.  
  101.     lea    mt8_smp(pc),a1
  102.     lea    mt8_dat(pc),a0
  103.     moveq    #7,d0
  104. mt8_lp4:move.l    a0,(a1)+            ;clear now-played instr.
  105.     add.w    #$1c,a0
  106.     dbf    d0,mt8_lp4
  107.  
  108.     lea    $dff000,a6
  109.     move.w    #15,$96(a6)            ;stop audio-dma
  110.     lea    mt8_ch1(pc),a0
  111.     move.l    a0,$a0(a6)            ;init audio-dma
  112.     add.w    #$272,a0
  113.     move.l    a0,$b0(a6)
  114.     add.w    #$272,a0
  115.     move.l    a0,$c0(a6)
  116.     add.w    #$272,a0
  117.     move.l    a0,$d0(a6)
  118.     move.w    #$139,d0            ;length 313 sample-bytes
  119.     move.w    d0,$a4(a6)
  120.     move.w    d0,$b4(a6)
  121.     move.w    d0,$c4(a6)
  122.     move.w    d0,$d4(a6)
  123.     move.w    #$e3,d0                ;play one sample per line
  124.     move.w    d0,$a6(a6)
  125.     move.w    d0,$b6(a6)
  126.     move.w    d0,$c6(a6)
  127.     move.w    d0,$d6(a6)
  128.     moveq    #$40,d0                ;volumen 64
  129.     move.w    d0,$a8(a6)
  130.     move.w    d0,$b8(a6)
  131.     move.w    d0,$c8(a6)
  132.     move.w    d0,$d8(a6)
  133.  
  134. mt8_wt1:move.l    $4(a6),d0            ;wait for line $12d
  135.     lsr.l    #8,d0
  136.     and.w    #$1ff,d0
  137.     cmp.w    #$12d,d0
  138.     bne.s    mt8_wt1
  139.  
  140.     moveq    #9,d0
  141. mt8_wt2:dbf    d0,mt8_wt2
  142.     move.w    #$800f,$96(a6)            ;start dma
  143.  
  144.     movem.l    (a7)+,d0-d7/a0-a6
  145.     rts
  146.  
  147. ;============================= main-routine =============================
  148.  
  149. mt8_play: movem.l    d0/a2-a5,-(a7)
  150.     lea    mt8_chg(pc),a2
  151.     eor.w    #$139,(a2)            ;change between buffer
  152.     move.w    (a2),d0
  153.     bsr    mt8_get                ;get next note
  154.     lea    mt8_smp(pc),a2
  155.     movem.l    (a2)+,a3/a4
  156.     lea    mt8_ch1(pc),a5
  157.     add.w    d0,a5
  158.     bsr    mt8_mix                ;mix channel 1 & 2
  159.     movem.l    (a2)+,a3/a4
  160.     lea    mt8_ch2(pc),a5
  161.     add.w    d0,a5
  162.     bsr    mt8_mix                ;mix channel 3 & 4
  163.     movem.l    (a2)+,a3/a4
  164.     lea    mt8_ch3(pc),a5
  165.     add.w    d0,a5
  166.     bsr    mt8_mix                ;mix channel 5 & 6
  167.     movem.l    (a2)+,a3/a4
  168.     lea    mt8_ch4(pc),a5
  169.     add.w    d0,a5
  170.     bsr    mt8_mix                ;mix channel 7 & 8
  171.     movem.l    (a7)+,d0/a2-a5
  172.     rts
  173.  
  174. ;================================ stop ==================================
  175.  
  176. mt8_end:move.l    a6,-(a7)
  177.     lea    $dff000,a6
  178.     move.w    #$f,$96(a6)            ;stop dma
  179.     clr.w    $a8(a6)                ;set vol to 0
  180.     clr.w    $b8(a6)
  181.     clr.w    $c8(a6)
  182.     clr.w    $d8(a6)
  183.     bclr    #1,$bfe001            ;filter off
  184.     move.l    (a7)+,a6
  185.     rts
  186.  
  187. ;============================== routines ================================
  188.  
  189. mt8_get:movem.l    d0-d7/a0-a6,-(a7)
  190.     lea    $dff004,a0
  191. mt8_wt3:move.l    (a0),d0
  192.     lsr.l    #8,d0
  193.     and.w    #$1ff,d0
  194.     cmp.w    #$12d,d0            ;wait for line $12d
  195.     bne.s    mt8_wt3
  196.  
  197.     lea    mt8_ctr(pc),a0
  198.     tst.b    (a0)                ;new note ?
  199.     bne.s    mt8_l07
  200.     bsr.s    mt8_gt2                ; => get data
  201. mt8_l07:subq.b    #1,(a0)
  202.     movem.l    (a7)+,d0-d7/a0-a6
  203.     rts
  204.  
  205. mt8_gt2:move.l    a0,-(a7)
  206.     move.b    1(a0),(a0)            ;set speed
  207.  
  208.     moveq    #16,d0
  209.     lea    mt8_evn(pc),a0
  210.     add.l    d0,(a0)+            ;point to next note
  211.     add.l    d0,(a0)+
  212.     lea    mt8_ins(pc),a0
  213.     move.l    mt8_mdl(pc),a1
  214.     add.w    #$2a,a1
  215.     lea    mt8_dat(pc),a3
  216.     lea    mt8_smp(pc),a5
  217.     move.l    mt8_evn(pc),a2            ;even pattern
  218.     bsr.s    mt8_set
  219.     move.l    mt8_odd(pc),a2            ;odd pattern
  220.     bsr.s    mt8_set
  221.  
  222.     lea    mt8_nte(pc),a0
  223.     lea    mt8_pos(pc),a1
  224.     move.w    (a1),d0                ;add pattern-pos
  225.     addq.w    #1,(a0)
  226.     cmp.w    #$40,(a0)
  227.     bne.s    mt8_ed2
  228.     addq.w    #1,d0
  229. mt8_nxt:clr.w    (a0)
  230.     move.l    mt8_mdl(pc),a0
  231.     addq.b    #1,d0                ;remove bug
  232.     cmp.b    $3b6(a0),d0            ;end of song ?
  233.     blt.s    mt8_l14
  234.     move.b    $3b7(a0),d0            ;ja, restart !
  235.     addq.w    #1,d0
  236. mt8_l14:add.w    #$3b8,a0
  237.     subq.w    #1,d0
  238.     move.w    d0,(a1)
  239.     moveq    #0,d1
  240.     move.b    (a0,d0.w),d1
  241.     moveq    #10,d0
  242.     lsl.l    d0,d1
  243.     add.w    #$42c-$3b8,a0
  244.     add.l    a0,d1
  245.     lea    mt8_evn(pc),a0
  246.     move.l    d1,(a0)+
  247.     add.l    #$400,d1
  248.     move.l    d1,(a0)
  249. mt8_ed2:move.l    (a7)+,a0
  250.     rts
  251.  
  252. mt8_set:lea    $dff0a9,a6
  253.     moveq    #3,d7
  254. mt8_lp5:moveq    #0,d0
  255.     moveq    #0,d1
  256.     move.b    2(a2),d0            ;get command
  257.     and.b    #15,d0
  258.     cmp.b    #15,d0                ;speed ?
  259.     bne.s    mt8_l08
  260.     lea    mt8_spd(pc),a4
  261.     move.b    3(a2),(a4)
  262. mt8_l08:cmp.b    #12,d0                ;get vol
  263.     bne.s    mt8_l09
  264.     move.b    3(a2),(a6)
  265.     st     d1
  266. mt8_l09:move.w    (a2),d0
  267.     and.w    #$fff,d0
  268.     beq.s    mt8_l13                ;new note ?
  269.     tst.b    d1
  270.     bne.s    mt8_l10
  271.     move.b    #$40,(a6)
  272. mt8_l10:move.l    a3,(a5)
  273.     move.l    #$38c000,d1            ;get sample-speed
  274.     divu    d0,d1
  275.     swap    d1
  276.     clr.w    d1
  277.     swap    d1
  278.     add.l    d1,d1
  279.     add.l    d1,d1
  280.     move.l    d1,8(a3)
  281.     moveq    #0,d0
  282.     move.b    2(a2),d0
  283.     lsr.b    #4,d0
  284.     btst    #7,(a2)
  285.     beq.s    mt8_l11                ;instrument 16...31 ?
  286.     add.b    #$10,d0
  287. mt8_l11:move.w    d0,d1
  288.     beq.s    mt8_l13
  289.     subq.w    #1,d1
  290.     add.w    d0,d0
  291.     add.w    d0,d0
  292.     move.l    -4(a0,d0.w),(a3)        ;set sample-address
  293.     mulu    #$1e,d1
  294.     move.w    (a1,d1.w),d0
  295.     add.l    d0,d0
  296.     move.l    d0,4(a3)            ;set sample-length
  297.     tst.w    4(a1,d1.w)
  298.     beq.s    mt8_l12                ;loop ?
  299.     move.l    (a3),12(a3)            ; => set loop
  300.     moveq    #0,d0
  301.     move.w    4(a1,d1.w),d0
  302.     add.l    d0,d0
  303.     add.l    d0,12(a3)
  304.     move.w    6(a1,d1.w),d0            ;set loop-length
  305.     add.l    d0,d0
  306.     move.l    d0,16(a3)
  307.     bra.s    mt8_l13
  308. mt8_l12:clr.l    12(a3)                ;clear loop
  309.     clr.l    16(a3)
  310.     clr.l    20(a3)
  311. mt8_l13:addq.w    #4,a2                ;set pointer to next
  312.     add.w    #28,a3                ;channel
  313.     addq.w    #4,a5
  314.     add.w    #16,a6
  315.     dbf    d7,mt8_lp5
  316.     rts
  317.  
  318. mt8_mix:movem.l    d0-d7/a0-a6,-(a7)
  319.     move.l    8(a3),d0            ;get sample-position
  320.     move.l    8(a4),d1
  321.     asr.l    #3,d0
  322.     asr.l    #3,d1
  323.     muls    #$139,d0
  324.     muls    #$139,d1
  325.     lsl.l    #3,d0
  326.     lsl.l    #3,d1
  327.     swap    d0
  328.     swap    d1
  329.     ext.l    d0
  330.     ext.l    d1
  331.     move.l    4(a3),d2
  332.     move.l    4(a4),d3
  333.     tst.l    8(a3)
  334.     bpl.s    mt8_l01
  335.     exg    d0,d2
  336. mt8_l01:tst.l    8(a4)
  337.     bpl.s    mt8_l02
  338.     exg    d1,d3
  339. mt8_l02:cmp.l    d2,d0                ;end of sample a ?
  340.     blt.s    mt8_l04
  341.     tst.l    12(a3)
  342.     beq.s    mt8_l03
  343.     move.l    12(a3),(a3)            ;set loop
  344.     move.l    $10(a3),4(a3)
  345.     bra.s    mt8_l04
  346.  
  347. mt8_l03:clr.l    (a3)                ;clear loop
  348.     clr.l    4(a3)
  349.     clr.l    8(a3)
  350. mt8_l04:cmp.l    d3,d1                ;end of sample b ?
  351.     blt.s    mt8_l06
  352.     tst.l    12(a4)
  353.     beq.s    mt8_l05
  354.     move.l    12(a4),(a4)            ;set loop
  355.     move.l    $10(a4),4(a4)
  356.     bra.s    mt8_l06
  357.  
  358. mt8_l05:clr.l    (a4)                ;clear loop
  359.     clr.l    4(a4)
  360.     clr.l    8(a4)
  361. mt8_l06:move.l    (a3),a0                ;sample/speed => a0/d2
  362.     move.l    8(a3),d2
  363.     move.l    (a4),a1                ;sample/speed => a1/d3
  364.     move.l    8(a4),d3
  365.     moveq    #0,d0                ;start-offsets 0
  366.     moveq    #0,d1
  367.  
  368.     mt8_add                    ;mix 313 sample-bytes
  369.     mt8_add                    ;it's about 8 rasterlines
  370.     mt8_add                    ;faster than using a dbf !
  371.     mt8_add
  372.     mt8_add
  373.     mt8_add
  374.     mt8_add
  375.     mt8_add
  376.     mt8_add
  377.     mt8_add
  378.  
  379.     mt8_add
  380.     mt8_add
  381.     mt8_add
  382.     mt8_add
  383.     mt8_add
  384.     mt8_add
  385.     mt8_add
  386.     mt8_add
  387.     mt8_add
  388.     mt8_add
  389.  
  390.     mt8_add
  391.     mt8_add
  392.     mt8_add
  393.     mt8_add
  394.     mt8_add
  395.     mt8_add
  396.     mt8_add
  397.     mt8_add
  398.     mt8_add
  399.     mt8_add
  400.  
  401.     mt8_add
  402.     mt8_add
  403.     mt8_add
  404.     mt8_add
  405.     mt8_add
  406.     mt8_add
  407.     mt8_add
  408.     mt8_add
  409.     mt8_add
  410.     mt8_add
  411.  
  412.     mt8_add
  413.     mt8_add
  414.     mt8_add
  415.     mt8_add
  416.     mt8_add
  417.     mt8_add
  418.     mt8_add
  419.     mt8_add
  420.     mt8_add
  421.     mt8_add
  422.  
  423.     mt8_add
  424.     mt8_add
  425.     mt8_add
  426.     mt8_add
  427.     mt8_add
  428.     mt8_add
  429.     mt8_add
  430.     mt8_add
  431.     mt8_add
  432.     mt8_add
  433.  
  434.     mt8_add
  435.     mt8_add
  436.     mt8_add
  437.     mt8_add
  438.     mt8_add
  439.     mt8_add
  440.     mt8_add
  441.     mt8_add
  442.     mt8_add
  443.     mt8_add
  444.  
  445.     mt8_add
  446.     mt8_add
  447.     mt8_add
  448.     mt8_add
  449.     mt8_add
  450.     mt8_add
  451.     mt8_add
  452.     mt8_add
  453.     mt8_add
  454.     mt8_add
  455.  
  456.     mt8_add
  457.     mt8_add
  458.     mt8_add
  459.     mt8_add
  460.     mt8_add
  461.     mt8_add
  462.     mt8_add
  463.     mt8_add
  464.     mt8_add
  465.     mt8_add
  466.  
  467.     mt8_add
  468.     mt8_add
  469.     mt8_add
  470.     mt8_add
  471.     mt8_add
  472.     mt8_add
  473.     mt8_add
  474.     mt8_add
  475.     mt8_add
  476.     mt8_add
  477.  
  478.     mt8_add
  479.     mt8_add
  480.     mt8_add
  481.     mt8_add
  482.     mt8_add
  483.     mt8_add
  484.     mt8_add
  485.     mt8_add
  486.     mt8_add
  487.     mt8_add
  488.  
  489.     mt8_add
  490.     mt8_add
  491.     mt8_add
  492.     mt8_add
  493.     mt8_add
  494.     mt8_add
  495.     mt8_add
  496.     mt8_add
  497.     mt8_add
  498.     mt8_add
  499.  
  500.     mt8_add
  501.     mt8_add
  502.     mt8_add
  503.     mt8_add
  504.     mt8_add
  505.     mt8_add
  506.     mt8_add
  507.     mt8_add
  508.     mt8_add
  509.     mt8_add
  510.  
  511.     mt8_add
  512.     mt8_add
  513.     mt8_add
  514.     mt8_add
  515.     mt8_add
  516.     mt8_add
  517.     mt8_add
  518.     mt8_add
  519.     mt8_add
  520.     mt8_add
  521.  
  522.     mt8_add
  523.     mt8_add
  524.     mt8_add
  525.     mt8_add
  526.     mt8_add
  527.     mt8_add
  528.     mt8_add
  529.     mt8_add
  530.     mt8_add
  531.     mt8_add
  532.  
  533.     mt8_add
  534.     mt8_add
  535.     mt8_add
  536.     mt8_add
  537.     mt8_add
  538.     mt8_add
  539.     mt8_add
  540.     mt8_add
  541.     mt8_add
  542.     mt8_add
  543.  
  544.     mt8_add
  545.     mt8_add
  546.     mt8_add
  547.     mt8_add
  548.     mt8_add
  549.     mt8_add
  550.     mt8_add
  551.     mt8_add
  552.     mt8_add
  553.     mt8_add
  554.  
  555.     mt8_add
  556.     mt8_add
  557.     mt8_add
  558.     mt8_add
  559.     mt8_add
  560.     mt8_add
  561.     mt8_add
  562.     mt8_add
  563.     mt8_add
  564.     mt8_add
  565.  
  566.     mt8_add
  567.     mt8_add
  568.     mt8_add
  569.     mt8_add
  570.     mt8_add
  571.     mt8_add
  572.     mt8_add
  573.     mt8_add
  574.     mt8_add
  575.     mt8_add
  576.  
  577.     mt8_add
  578.     mt8_add
  579.     mt8_add
  580.     mt8_add
  581.     mt8_add
  582.     mt8_add
  583.     mt8_add
  584.     mt8_add
  585.     mt8_add
  586.     mt8_add
  587.  
  588.     mt8_add
  589.     mt8_add
  590.     mt8_add
  591.     mt8_add
  592.     mt8_add
  593.     mt8_add
  594.     mt8_add
  595.     mt8_add
  596.     mt8_add
  597.     mt8_add
  598.  
  599.     mt8_add
  600.     mt8_add
  601.     mt8_add
  602.     mt8_add
  603.     mt8_add
  604.     mt8_add
  605.     mt8_add
  606.     mt8_add
  607.     mt8_add
  608.     mt8_add
  609.  
  610.     mt8_add
  611.     mt8_add
  612.     mt8_add
  613.     mt8_add
  614.     mt8_add
  615.     mt8_add
  616.     mt8_add
  617.     mt8_add
  618.     mt8_add
  619.     mt8_add
  620.  
  621.     mt8_add
  622.     mt8_add
  623.     mt8_add
  624.     mt8_add
  625.     mt8_add
  626.     mt8_add
  627.     mt8_add
  628.     mt8_add
  629.     mt8_add
  630.     mt8_add
  631.  
  632.     mt8_add
  633.     mt8_add
  634.     mt8_add
  635.     mt8_add
  636.     mt8_add
  637.     mt8_add
  638.     mt8_add
  639.     mt8_add
  640.     mt8_add
  641.     mt8_add
  642.  
  643.     mt8_add
  644.     mt8_add
  645.     mt8_add
  646.     mt8_add
  647.     mt8_add
  648.     mt8_add
  649.     mt8_add
  650.     mt8_add
  651.     mt8_add
  652.     mt8_add
  653.  
  654.     mt8_add
  655.     mt8_add
  656.     mt8_add
  657.     mt8_add
  658.     mt8_add
  659.     mt8_add
  660.     mt8_add
  661.     mt8_add
  662.     mt8_add
  663.     mt8_add
  664.  
  665.     mt8_add
  666.     mt8_add
  667.     mt8_add
  668.     mt8_add
  669.     mt8_add
  670.     mt8_add
  671.     mt8_add
  672.     mt8_add
  673.     mt8_add
  674.     mt8_add
  675.  
  676.     mt8_add
  677.     mt8_add
  678.     mt8_add
  679.     mt8_add
  680.     mt8_add
  681.     mt8_add
  682.     mt8_add
  683.     mt8_add
  684.     mt8_add
  685.     mt8_add
  686.  
  687.     mt8_add
  688.     mt8_add
  689.     mt8_add
  690.     mt8_add
  691.     mt8_add
  692.     mt8_add
  693.     mt8_add
  694.     mt8_add
  695.     mt8_add
  696.     mt8_add
  697.  
  698.     mt8_add
  699.     mt8_add
  700.     mt8_add
  701.     mt8_add
  702.     mt8_add
  703.     mt8_add
  704.     mt8_add
  705.     mt8_add
  706.     mt8_add
  707.     mt8_add
  708.  
  709.     mt8_add
  710.     mt8_add
  711.     mt8_add
  712.  
  713.     ext.l    d0
  714.     ext.l    d1
  715.     add.l    d0,a0                ;get new sample-address
  716.     add.l    d1,a1
  717.     move.l    a0,(a3)
  718.     move.l    a1,(a4)
  719.     sub.l    d0,4(a3)
  720.     sub.l    d1,4(a4)
  721.     movem.l    (a7)+,d0-d7/a0-a6
  722.     rts
  723.  
  724. ;================================ data ==================================
  725.  
  726. mt8_mdl: dc.l    0            ;zeiger auf module
  727. mt8_ins: dcb.l    31,0            ;intrument-list
  728. mt8_ctr: dc.b    0            ;speed-counter
  729. mt8_spd: dc.b    6            ;speed
  730. mt8_pos: dc.w    0            ;song-pos
  731. mt8_nte: dc.w    0            ;note-pos
  732. mt8_chg: dc.w    $139            ;buffer-change
  733. mt8_evn: dc.l    0            ;even pattern
  734. mt8_odd: dc.l    0            ;odd pattern
  735. mt8_smp: dcb.l    8,0            ;now-played samples
  736. mt8_dat: dcb.l    $38,0            ;now-played sample-data
  737.  
  738. mt8_ch1: dcb.b    $272,0            ;channel mix-buffer
  739. mt8_ch2: dcb.b    $272,0
  740. mt8_ch3: dcb.b    $272,0
  741. mt8_ch4: dcb.b    $272,0
  742.  
  743. mt8_stp:
  744.  
  745. MT8_DATA:    INCBIN    'work:protracker/modules/mod.chords'
  746.  
  747.